#!/usr/bin/env node

/**
 * Vite缓存清理脚本
 * 用于解决Vite依赖优化缓存过期问题
 */

const fs = require('fs');
const path = require('path');
const { execSync } = require('child_process');

// 项目根目录
const projectRoot = path.resolve(__dirname, '..');

// 需要清理的缓存目录
const cacheDirectories = [
  'node_modules/.vite',
  'dist',
  '.vite'
];

/**
 * 递归删除目录
 * @param {string} dirPath 目录路径
 */
function removeDirectory(dirPath) {
  const fullPath = path.join(projectRoot, dirPath);
  
  if (fs.existsSync(fullPath)) {
    console.log(`正在清理: ${dirPath}`);
    try {
      fs.rmSync(fullPath, { recursive: true, force: true });
      console.log(`✅ 已清理: ${dirPath}`);
    } catch (error) {
      console.error(`❌ 清理失败: ${dirPath}`, error.message);
    }
  } else {
    console.log(`⏭️  跳过不存在的目录: ${dirPath}`);
  }
}

/**
 * 主清理函数
 */
function clearViteCache() {
  console.log('🧹 开始清理Vite缓存...');
  console.log('='.repeat(50));
  
  // 清理缓存目录
  cacheDirectories.forEach(removeDirectory);
  
  console.log('='.repeat(50));
  console.log('✨ Vite缓存清理完成!');
  console.log('💡 提示: 下次启动开发服务器时，Vite会重新优化依赖');
}

// 如果直接运行此脚本
if (require.main === module) {
  clearViteCache();
}

module.exports = { clearViteCache };